import { ColorEnum } from "./ColorEnum";

export enum SideType {
  Attack,
  Defense
}



export enum ReportReadState {
    /**已读 */
    Read = 0,
    /**未读 */
    Unread = 1
}

export class Report{
   /**
     * 请求用户ID，用来判断是否能查看战报防御内容
     */
   requestUserId:number;
   /**
    * 是否进入TOP战报
    */
   isTop:number;
   /**
    * 报告序列号
    */
   sn:number;
   /**
    * 报告标题
    */
   title:string;
   /**
    * 报告备注
    */
   content:string;
   /**
    * 报告附加参数
    */
   rParam:string;
   /**
    * 报告提交时间
    */
   startTime:number;
   /**
    * 报告发起者Id
    */
   srcUserId:number;
   /**
    * 报告出发村庄的用户名
    */
   srcUserName:string;
   /**
    * 报告目标用户的联盟Id
    */
   srcAllyId:number;
   /**
    * 报告目标用户的联盟名称
    */
   srcAllyName:string;
   /**
    * 报告接受方用户ID
    */
   dstUserId:number;
   /**
    * 报告目标村庄的用户名
    */
   dstUserName:string;
   /**
    * 报告出发村庄的联盟Id
    */
   dstAllyId:number;
   /**
    * 报告出发村庄的联盟名称
    */
   dstAllyName:string;
   /**
    * src 已读
    */
   srcRead:number;
   /**
    * dst 已读
    */
   dstRead:number;
   /**
    * 是否未读
    */
   isUnread:ReportReadState;
   /**
    * 报告类型 ReportType
    */
   reportType:number;
   /**
    * 报告被动接收村庄ID
    */
   SimZoneId:number;
   /**
    * 报告目标村庄名称
    */
   SimZoneName:string;
   /**
    * 报告发起村庄ID
    */
   OriZoneId:number;
   /**
    * 报告出发村庄名称
    */
   OriZoneName:string;
   /**
    * 攻击总米数
    */
   n_Ack:number;
   /**
    * 防御总米数
    */
   n_Def:number;
   /**
    * 攻击总损失
    */
   n_lAck:number;
   /**
    * 防御总损失
    */
   n_lDef:number;
   /**
    * 抢劫物资总数
    */
   n_Good:number;
   /**
    * 发布模式 全部发布 遮ID 遮兵力
    */
   publishStatus:number;
   /**
    * 发布者
    */
   publisher:number;

   battle:string

   static createByObj(obj:any):Report{
      let re = new Report() 
      for(let key in obj){
        re[key] = obj[key]
      }
      return re
   }

   static createByList(data:any[]):Report[]{
      let list = []
      for(let item of data){
        list.push(this.createByObj(item))
      }
      return list
   }

   

   get titleRichText():string{
      let str = `<color=${ColorEnum.GrayYellow}>${this.title}</color>`

      str = str.replace('攻击', `<color=${ColorEnum.Red}>攻击</color>`)
      str = str.replace('补给', `<color=${ColorEnum.Green}>补给</color>`)
      str = str.replace('支援', `<color=${ColorEnum.Green}>支援</color>`)
      return str
   }
}


